import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2025-06-16
 * Time: 22:42
 */
//https://leetcode.cn/problems/remove-element/submissions/637178746/
//力扣：给你一个数组 nums 和一个值 val，你需要 原地 移除所有数值等于 val 的元素。
// 元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
public class Test {
    public static int fun(int[] nums, int val) {
        if(nums.length==0)
            return 0;
        int n=0;
        int j=nums.length-1;
        for(int i=0;i<nums.length;i++){
            while(nums[j]==val&&j>0)
                j--;
            if(nums[i]==val&&i<j){
                nums[i]=nums[j];
                nums[j]=val;
            }
        }
        for(int i=0;i<nums.length;i++)
            if(nums[i]!=val)
                n++;
        return n;
    }

    public static void main(String[] args) {
        int[] arr={0,1,2,2,3,0,4,2};
        int val=2;
        int n=fun(arr,2);
        String str= Arrays.toString(arr);
        System.out.println(str);
        System.out.println(n);
    }
}
